/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 *
 * Progress Update Event Arguments Class
 *      An event arguments class for progress update events.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
using System;

namespace Adaptive.Foundation
{
    /// <summary>
    /// An event arguments class for progress update events.
    /// </summary>
    public class ProgressEventArgs : System.EventArgs
    {
        /*--------------------------------------------------------------------------------
         *  Private Member Declarations
         *------------------------------------------------------------------------------*/
        #region Private Member Declarations
        /// <summary>
        /// Gets the current status
        /// </summary>
        private string _status = string.Empty;
        /// <summary>
        /// Gets the percentage completion value.
        /// </summary>
        private int _percentComplete;
        #endregion

        /*--------------------------------------------------------------------------------
		 *  Constructor / Dispose / Destructor Methods
		 *------------------------------------------------------------------------------*/
        #region Constructor / Dispose / Destructor Methods
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        /// <remarks>
        /// This is the default constructor.
        /// </remarks>
        public ProgressEventArgs()
        {
        }
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        /// <param name="status">The current status.</param>
        public ProgressEventArgs(string status)
        {
            _status = status;
        }
        /// <summary>
        /// Initializes a new instance of the class.
        /// </summary>
        /// <param name="percentComplete">The percentage complete value.</param>
        /// <param name="status">The current status.</param>
        public ProgressEventArgs(string status, int percentComplete)
        {
            _status = status;
            _percentComplete = percentComplete;
        }
        #endregion

        /*--------------------------------------------------------------------------------
		 *  Public Properties
		 *------------------------------------------------------------------------------*/
        #region Public Properties
        /// <summary>
        /// Gets or sets the current status to be displayed.
        /// </summary>
        /// <value>
        /// A status description.
        /// </value>
        public string Status
        {
            get { return _status; }
            set { _status = value; }
        }
        /// <summary>
        /// Gets or sets the percentage completion value.
        /// </summary>
        /// <value>
        /// An integer value between 0 and 100.
        /// </value>
        public int PercentComplete
        {
            get { return _percentComplete; }
            set { _percentComplete = value; }
        }
        #endregion
    }
}